/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tpgen.manchester.oppl;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author shanki
 */
@Deprecated
public enum Construct {
    objectRestriction_some,
    objectRestriction_only,
    objectRestriction_value,
    objectRestriction_min,
    objectRestriction_exactly,
    objectRestriction_max,
    
    dataRestriction_some,
    dataRestriction_only,
    dataRestriction_min,
    dataRestriction_exactly,
    dataRestriction_max,
    
    classNot,
    oneOf,
    
    classUnion,
    classIntersection,    
    
    classAssertionAxiom_individual,
    classAssertionAxiom_types,    
    
    subClassAxiom,
    equivalentClassAxiom,
    disjointClassAxiom,
    functionalObjectPropertyAxiom,
    symmetricObjectPropertyAxiom,
    reflexiveObjectPropertyAxiom,
    transitiveObjectPropertyAxiom,
    antiSymmetricObjectPropertyAxiom,
    irreflexiveObjectPropertyAxiom,
    subObjectPropertyAxiom,
    equivalentObjectPropertyAxiom,
    disjointObjectPropertyAxiom,
    inversePropertyAxiom,
    inverseFunctionalPropertyAxiom,
    functionalDataPropertyAxiom,
    objectPropertyRangeAxiom,
    objectPropertyDomainAxiom,
    subDataPropertyAxiom,
    equivalentDataPropertyAxiom,
    disjointDataPropertyAxiom,
    dataPropertyDomainAxiom,
    dataPropertyRangeAxiom,
    classAssertionAxiom,
    objectPropertyAssertionAxiom,
    dataPropertyAssertionAxiom,
    negativeObjectPropertyAssertionAxiom,
    negativeDataPropertyAssertionAxiom,
    sameAsAxiom,
    differentFromAxiom;
    
    public static Set<Construct> complement(Set<Construct> constructs) {
        Set<Construct> compl = new HashSet<Construct>(Arrays.asList(Construct.values()));
        
        compl.removeAll(constructs);
        
        return compl;
    }
}
